//
//  AFNTools.h
//  TongCan-Admin
//
//  Created by 刘金达 on 16/2/22.
//  Copyright © 2016年 LJD. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef void(^sucessBlock)(id responseObject);
typedef void(^faileBlock)(NSError *error);
/**
 *  宏定义请求成功的block
 *
 *  @param response 请求成功返回的数据
 */
typedef void (^LHResponseSuccess)(NSURLSessionDataTask * task,id responseObject);

/**
 *  宏定义请求失败的block
 *
 *  @param error 报错信息
 */
typedef void (^LHResponseFail)(NSURLSessionDataTask * task, NSError * error);

/**
 *  上传或者下载的进度
 *
 *  @param progress 进度
 */
typedef void (^LHProgress)(NSProgress *progress);


@interface AFNTools : NSObject

#pragma mark - GET
+ (void)getWithUrl:(NSString *)url andParameters:(NSDictionary *)dict andSuccessBlock:(sucessBlock)success andFaileBlock:(faileBlock)faile;


#pragma mark - POST
+ (void)postWithUrl:(NSString *)url andParameters:(NSDictionary *)dict andSuccessBlock:(sucessBlock)success andFaileBlock:(faileBlock)faile;

+ (void)updateHeadImage:(UIImage *)headImage utl:(NSString *)url andSuccessBlock:(sucessBlock)success andFaileBlock:(faileBlock)faile;

+ (void)updateHeadImage:(NSArray *)headImage utl:(NSString *)url parameter:(NSMutableDictionary *)dic  andSuccessBlock:(sucessBlock)success andFaileBlock:(faileBlock)faile;
//
///**
// *  普通get方法请求网络数据
// *
// *  @param url     请求网址路径
// *  @param params  请求参数
// *  @param success 成功回调
// *  @param fail    失败回调
// */
//+(void)GET:(NSString *)url
//    params:(NSDictionary *)params success:(LHResponseSuccess)success
//      fail:(LHResponseFail)fail;
///**
// *  含有baseURL的get方法
// *
// *  @param url     请求网址路径
// *  @param baseUrl 请求网址根路径
// *  @param params  请求参数
// *  @param success 成功回调
// *  @param fail    失败回调
// */
//+(void)GET:(NSString *)url baseURL:(NSString *)baseUrl
//    params:(NSDictionary *)params success:(LHResponseSuccess)success fail:(LHResponseFail)fail;
//
///**
// *  普通post方法请求网络数据
// *
// *  @param url     请求网址路径
// *  @param params  请求参数
// *  @param success 成功回调
// *  @param fail    失败回调
// */
//+(void)POST:(NSString *)url
//     params:(NSDictionary *)params
//    success:(LHResponseSuccess)success
//       fail:(LHResponseFail)fail;
//
///**
// *  含有baseURL的post方法
// *
// *  @param url     请求网址路径
// *  @param baseUrl 请求网址根路径
// *  @param params  请求参数
// *  @param success 成功回调
// *  @param fail    失败回调
// */
//+(void)POST:(NSString *)url
//    baseURL:(NSString *)baseUrl
//     params:(NSDictionary *)params
//    success:(LHResponseSuccess)success
//       fail:(LHResponseFail)fail;
//
///**
// *  普通路径上传文件
// *
// *  @param url      请求网址路径
// *  @param params   请求参数
// *  @param filedata 文件
// *  @param name     指定参数名
// *  @param filename 文件名（要有后缀名）
// *  @param mimeType 文件类型
// *  @param progress 上传进度
// *  @param success  成功回调
// *  @param fail     失败回调
// */
//+(void)uploadWithURL:(NSString *)url
//              params:(NSDictionary *)params
//            fileData:(NSData *)filedata
//                name:(NSString *)name
//            fileName:(NSString *)filename
//            mimeType:(NSString *) mimeType
//            progress:(LHProgress)progress
//             success:(LHResponseSuccess)success
//                fail:(LHResponseFail)fail;
///**
// *  含有跟路径的上传文件
// *
// *  @param url      请求网址路径
// *  @param baseurl  请求网址根路径
// *  @param params   请求参数
// *  @param filedata 文件
// *  @param name     指定参数名
// *  @param filename 文件名（要有后缀名）
// *  @param mimeType 文件类型
// *  @param progress 上传进度
// *  @param success  成功回调
// *  @param fail     失败回调
// */
//+(void)uploadWithURL:(NSString *)url
//             baseURL:(NSString *)baseurl
//              params:(NSDictionary *)params
//            fileData:(NSData *)filedata
//                name:(NSString *)name
//            fileName:(NSString *)filename
//            mimeType:(NSString *) mimeType
//            progress:(LHProgress)progress
//             success:(LHResponseSuccess)success
//                fail:(LHResponseFail)fail;
//
///**
// *  下载文件
// *
// *  @param url      请求网络路径
// *  @param fileURL  保存文件url
// *  @param progress 下载进度
// *  @param success  成功回调
// *  @param fail     失败回调
// *
// *  @return 返回NSURLSessionDownloadTask实例，可用于暂停继续，暂停调用suspend方法，重新开启下载调用resume方法
// */
//+(NSURLSessionDownloadTask *)downloadWithURL:(NSString *)url
//                                 savePathURL:(NSURL *)fileURL
//                                    progress:(LHProgress )progress
//                                     success:(void (^)(NSURLResponse *, NSURL *))success
//                                        fail:(void (^)(NSError *))fail;

@end
